#include "Bullet3Common/b3PoolAllocator.h"
#ifdef __cplusplus
extern "C" {
#endif
b3PoolAllocator* bullet_Newb3PoolAllocator(int elemSize,int maxElements){
	int c_arg_elemSize=elemSize;
	int c_arg_maxElements=maxElements;
	b3PoolAllocator* wrap_out = new b3PoolAllocator(c_arg_elemSize,c_arg_maxElements);
	return wrap_out;
}

void* bullet_b3PoolAllocator_allocate(b3PoolAllocator* c_this,int size){
	int c_arg_size=size;
	void * c_out = c_this->allocate(c_arg_size);
	void* wrap_out = (void*)(void*)(c_out);
	return wrap_out;
}

void bullet_b3PoolAllocator_freeMemory(b3PoolAllocator* c_this,void* ptr){
	void * c_arg_ptr=(void *)(void*)(ptr);
	c_this->freeMemory(c_arg_ptr);
}

int bullet_b3PoolAllocator_getElementSize(b3PoolAllocator* c_this){
	int c_out = c_this->getElementSize();
	int wrap_out = (c_out);
	return wrap_out;
}

int bullet_b3PoolAllocator_getFreeCount(b3PoolAllocator* c_this){
	int c_out = c_this->getFreeCount();
	int wrap_out = (c_out);
	return wrap_out;
}

int bullet_b3PoolAllocator_getMaxCount(b3PoolAllocator* c_this){
	int c_out = c_this->getMaxCount();
	int wrap_out = (c_out);
	return wrap_out;
}

unsigned char* bullet_b3PoolAllocator_getPoolAddress(b3PoolAllocator* c_this){
	unsigned char * c_out = c_this->getPoolAddress();
	unsigned char* wrap_out = (unsigned char*)(void*)(c_out);
	return wrap_out;
}

unsigned char* bullet_b3PoolAllocator_getPoolAddress1(b3PoolAllocator* c_this){
	unsigned char const * c_out = c_this->getPoolAddress();
	unsigned char* wrap_out = (unsigned char*)(void*)(c_out);
	return wrap_out;
}

int bullet_b3PoolAllocator_getUsedCount(b3PoolAllocator* c_this){
	int c_out = c_this->getUsedCount();
	int wrap_out = (c_out);
	return wrap_out;
}

bool bullet_b3PoolAllocator_validPtr(b3PoolAllocator* c_this,void* ptr){
	void * c_arg_ptr=(void *)(void*)(ptr);
	bool c_out = c_this->validPtr(c_arg_ptr);
	bool wrap_out = (c_out);
	return wrap_out;
}

#ifdef __cplusplus
}
#endif
